home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / chemm.z / chemm
Encoding:
Text File  |  2002-10-03  |  18.2 KB  |  330 lines

  1.  
  2.  
  3.  
  4. CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))                                                            CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CCCCHHHHEEEEMMMMMMMM, ZZZZHHHHEEEEMMMMMMMM - Multiplies a complex general matrix by a complex Hermitian
  10.      matrix
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      Single precision complex
  14.  
  15.           Fortran:
  16.                CCCCAAAALLLLLLLL CCCCHHHHEEEEMMMMMMMM ((((_s_i_d_e,,,, _u_p_l_o,,,, _m,,,, _n,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b,,,, _l_d_b,,,, _b_e_t_a,,,, _c,,,,
  17.                _l_d_c))))
  18.  
  19.           C/C++:
  20.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  21.                vvvvooooiiiidddd cccchhhheeeemmmmmmmm ((((cccchhhhaaaarrrr *_s_i_d_e,,,, cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _m,,,, iiiinnnntttt _n,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx
  22.                *_a_l_p_h_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_b,,,, iiiinnnntttt _l_d_b,,,,
  23.                ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_b_e_t_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_c,,,, iiiinnnntttt _l_d_c))));;;;
  24.  
  25.           C++ STL:
  26.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  27.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  28.                vvvvooooiiiidddd cccchhhheeeemmmmmmmm ((((cccchhhhaaaarrrr *_s_i_d_e,,,, cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _m,,,, iiiinnnntttt _n,,,,
  29.                ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a,,,, iiiinnnntttt _l_d_a,,,,
  30.                ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_b,,,, iiiinnnntttt _l_d_b,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_b_e_t_a,,,,
  31.                ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_c,,,, iiiinnnntttt _l_d_c))));;;;
  32.  
  33.      Double precision complex
  34.  
  35.           Fortran:
  36.                CCCCAAAALLLLLLLL ZZZZHHHHEEEEMMMMMMMM ((((_s_i_d_e,,,, _u_p_l_o,,,, _m,,,, _n,,,, _a_l_p_h_a,,,, _a,,,, _l_d_a,,,, _b,,,, _l_d_b,,,, _b_e_t_a,,,, _c,,,,
  37.                _l_d_c))))
  38.  
  39.           C/C++:
  40.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  41.                vvvvooooiiiidddd zzzzhhhheeeemmmmmmmm ((((cccchhhhaaaarrrr *_s_i_d_e,,,, cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _m,,,, iiiinnnntttt _n,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx
  42.                *_a_l_p_h_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_b,,,, iiiinnnntttt _l_d_b,,,,
  43.                ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_b_e_t_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_c,,,, iiiinnnntttt _l_d_c))));;;;
  44.  
  45.           C++ STL:
  46.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  47.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  48.                vvvvooooiiiidddd zzzzhhhheeeemmmmmmmm ((((cccchhhhaaaarrrr *_s_i_d_e,,,, cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _m,,,, iiiinnnntttt _n,,,,
  49.                ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> _a_l_p_h_a,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a,,,, iiiinnnntttt _l_d_a,,,,
  50.                ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_b,,,, iiiinnnntttt _l_d_b,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> _b_e_t_a,,,,
  51.                ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_c,,,, iiiinnnntttt _l_d_c))));;;;
  52.  
  53. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  54.      These routines are part of the SCSL Scientific Library and can be loaded
  55.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  56.      directs the linker to use the multi-processor version of the library.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))                                                            CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  75.      4 bytes (32 bits). Another version of SCSL is available in which integers
  76.      are 8 bytes (64 bits).  This version allows the user access to larger
  77.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  78.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  79.      only one of the two versions; 4-byte integer and 8-byte integer library
  80.      calls cannot be mixed.
  81.  
  82.      The C and C++ prototypes shown above are appropriate for the 4-byte
  83.      integer version of SCSL. When using the 8-byte integer version, the
  84.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header
  85.      file should be included.
  86.  
  87. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  88.      These routines multiply a complex general matrix by a complex Hermitian
  89.      matrix. They perform one of the following matrix-matrix operations:
  90.  
  91.           _C <- _a_l_p_h_a _A_B + _b_e_t_a _C
  92.  
  93.           _C <- _a_l_p_h_a _B_A + _b_e_t_a _C
  94.  
  95.      where _a_l_p_h_a and _b_e_t_a are scalars, _A is a Hermitian matrix, and _B and _C
  96.      are _m-by-_n matrices.
  97.  
  98.      See the NOTES section of this man page for information about the
  99.      interpretation of the data types described in the following arguments.
  100.  
  101.      These routines have the following arguments:
  102.  
  103.      _s_i_d_e      Character.  (input)
  104.                Specifies whether the Hermitian matrix _A appears on the left or
  105.                right in the operation, as follows:
  106.                _s_i_d_e = 'L' or 'l':  _C <- _a_l_p_h_a _A_B + _b_e_t_a _C
  107.                _s_i_d_e = 'R' or 'r':  _C <- _a_l_p_h_a _B_A + _b_e_t_a _C
  108.  
  109.                For C/C++, a pointer to this character is passed.
  110.  
  111.      _u_p_l_o      Character.  (input)
  112.                Specifies whether the upper or lower triangular part of the
  113.                Hermitian matrix _A is referenced, as follows:
  114.  
  115.                _u_p_l_o = 'U' or 'u': only the upper triangular part of the
  116.                Hermitian matrix is referenced.
  117.                _u_p_l_o = 'L' or 'l': only the lower triangular part of the
  118.                Hermitian matrix is referenced.
  119.  
  120.                For C/C++, a pointer to this character is passed.
  121.  
  122.      _m         Integer.  (input)
  123.                Specifies the number of rows in matrix _C.  _m must be >= 0.
  124.  
  125.  
  126.  
  127.                                                                         PPPPaaaaggggeeee 2222
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134. CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))                                                            CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))
  135.  
  136.  
  137.  
  138.      _n         Integer.  (input)
  139.                Specifies the number of columns in matrix _C.  _n must be >= 0.
  140.  
  141.      _a_l_p_h_a     First scalar factor.  (input)
  142.                CCCCHHHHEEEEMMMMMMMM: Single precision complex.
  143.                ZZZZHHHHEEEEMMMMMMMM: Double precision complex.
  144.  
  145.                For C/C++, a pointer to this scalar is passed.
  146.  
  147.      _a         Array of dimension (_l_d_a,_k_a).  (input)
  148.                CCCCHHHHEEEEMMMMMMMM: Single precision complex array.
  149.                ZZZZHHHHEEEEMMMMMMMM: Double precision complex array.
  150.  
  151.                Contains matrix _A.  When _s_i_d_e = 'L' or 'l', _k_a is _m; otherwise,
  152.                it is _n.
  153.  
  154.                Before entry with _s_i_d_e = 'L' or 'l', the _m-by-_m part of array _a
  155.                must contain the Hermitian matrix, such that:
  156.  
  157.                *   If _u_p_l_o = 'U' or 'u', the leading _m-by-_m upper triangular
  158.                    part of array _a must contain the upper triangular part of
  159.                    the Hermitian matrix.  The strictly lower triangular part
  160.                    of _a is not referenced.
  161.  
  162.                *   If _u_p_l_o = 'L' or 'l', the leading _m-by-_m lower triangular
  163.                    part of array _a must contain the lower triangular part of
  164.                    the Hermitian matrix.  The strictly upper triangular part
  165.                    of _a is not referenced.
  166.  
  167.                Before entry with _s_i_d_e = 'R' or 'r', the _n-by-_n part of array _a
  168.                must contain the Hermitian matrix, such that:
  169.  
  170.                *   If _u_p_l_o = 'U' or 'u', the leading _n-by-_n upper triangular
  171.                    part of array _a must contain the upper triangular part of
  172.                    the Hermitian matrix.  The strictly lower triangular part
  173.                    of _a is not referenced.
  174.  
  175.                *   If _u_p_l_o = 'L' or 'l', the leading _n-by-_n lower triangular
  176.                    part of array _a must contain the lower triangular part of
  177.                    the Hermitian matrix.  The strictly upper triangular part
  178.                    of _a is not referenced.
  179.  
  180.                The imaginary parts of the diagonal elements need not be set.
  181.                They are assumed to be 0.
  182.  
  183.      _l_d_a       Integer.  (input)
  184.                Specifies the first dimension of _a as declared in the calling
  185.                program.  When _s_i_d_e = 'L' or 'l', _l_d_a >= MMMMAAAAXXXX(1,_m); otherwise,
  186.                _l_d_a >= MMMMAAAAXXXX(1,_n).
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.                                                                         PPPPaaaaggggeeee 3333
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200. CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))                                                            CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))
  201.  
  202.  
  203.  
  204.      _b         Array of dimension (_l_d_b,_n).  (input)
  205.                CCCCHHHHEEEEMMMMMMMM: Single precision complex array.
  206.                ZZZZHHHHEEEEMMMMMMMM: Double precision complex array.
  207.                Contains matrix _B.  Before entry, the leading _m-by-_n part of
  208.                array _b must contain matrix _B.
  209.  
  210.      _l_d_b       Integer.  (input)
  211.                Specifies the first dimension of _b as declared in the calling
  212.                program.  _l_d_b >= MMMMAAAAXXXX(1,_m).
  213.  
  214.      _b_e_t_a      Second scalar factor.  (input)
  215.                CCCCHHHHEEEEMMMMMMMM: Single precision complex.
  216.                ZZZZHHHHEEEEMMMMMMMM: Double precision complex.
  217.                When _b_e_t_a is supplied as 0, _c need not be set on input.
  218.  
  219.                For C/C++, a pointer to this scalar is passed.
  220.  
  221.      _c         Array of dimension (_l_d_c,_n).  (input and output)
  222.                CCCCHHHHEEEEMMMMMMMM: Single precision complex array.
  223.                ZZZZHHHHEEEEMMMMMMMM: Double precision complex array.
  224.                Contains matrix _C.  Before entry, the leading _m-by-_n part of
  225.                array _c must contain matrix _C, except when _b_e_t_a is 0; in which
  226.                case, _c need not be set.  On exit, the _m-by-_n updated matrix
  227.                overwrites array _c.
  228.  
  229.      _l_d_c       Integer.  (input)
  230.                Specifies the first dimension of _c as declared in the calling
  231.                program.  _l_d_c >= MMMMAAAAXXXX(1,_m).
  232.  
  233. NNNNOOOOTTTTEEEESSSS
  234.      CCCCHHHHEEEEMMMMMMMM/ZZZZHHHHEEEEMMMMMMMM is a Level 3 Basic Linear Algebra Subprogram (Level 3 BLAS).
  235.  
  236.  
  237.    DDDDaaaattttaaaa TTTTyyyyppppeeeessss
  238.      The following data types are described in this documentation:
  239.  
  240.           TTTTeeeerrrrmmmm UUUUsssseeeedddd                          DDDDaaaattttaaaa ttttyyyyppppeeee
  241.  
  242.      Fortran:
  243.  
  244.           Array dimensioned _n           xxxx((((nnnn))))
  245.  
  246.           Array of dimensions (_m,_n)     xxxx((((mmmm,,,,nnnn))))
  247.  
  248.           Character                     CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR
  249.  
  250.           Integer                       IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  251.  
  252.           Single precision complex      CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.                                                                         PPPPaaaaggggeeee 4444
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266. CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))                                                            CCCCHHHHEEEEMMMMMMMM((((3333SSSS))))
  267.  
  268.  
  269.  
  270.           Double precision complex      DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  271.  
  272.      C/C++:
  273.  
  274.           Array dimensioned _n           xxxx[[[[_n]]]]
  275.  
  276.           Array of dimensions (_m, _n)    xxxx[[[[mmmm****nnnn]]]]
  277.  
  278.           Character                     cccchhhhaaaarrrr
  279.  
  280.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  281.  
  282.           Single precision complex      ssssccccssssllll____ccccoooommmmpppplllleeeexxxx
  283.  
  284.           Double precision complex      ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx
  285.  
  286.      C++ STL:
  287.  
  288.           Array dimensioned _n           xxxx[[[[_n]]]]
  289.  
  290.           Array of dimensions (_m, _n)    xxxx[[[[mmmm****nnnn]]]]
  291.  
  292.           Character                     cccchhhhaaaarrrr
  293.  
  294.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  295.  
  296.           Single precision complex      ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>>
  297.  
  298.           Double precision complex      ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>>
  299.  
  300.      Note that you can explicitly declare multidimensional C/C++ arrays
  301.      provided that the array dimensions are swapped with respect to the
  302.      Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran).
  303.      To avoid a compiler type mismatch error in C++ (or a compiler warning
  304.      message in C), however, the array should be cast to a pointer of the
  305.      appropriate type when passed as an argument to a SCSL routine.
  306.  
  307. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  308.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS3333(3S), SSSSSSSSYYYYMMMMMMMM(3S)
  309.  
  310.      IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77
  311.      Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic
  312.      Linear Algebra Subprograms Technical Forum.
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.                                                                         PPPPaaaaggggeeee 5555
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.